﻿using System.Collections.Generic;
using Foothill.Model;

namespace Foothill.Service.AdService
{
    public interface IAdService
    {
        int InsertNewForSaleAd(ForSaleAd newAd, out string editKey);

        bool UpdateForSaleAdEditKey(int adId, string editkey);

        IDictionary<int, string> GetOrderByOptions(string cultureCode);

        ForSaleAd GetForSaleAdById(int id);

        ForSaleAd GetForSaleAdByIdAndEditKey(int postId, string editkey);

        bool UpdatePrice(int postId, int newPrice);

        bool TakePostOffline(int postId);

        AdStatusLookup DetermineAdStatus(ForSaleAd post);

        IList<ForSaleAd> GetPostsByUser(int userAccountId, int pageNum, out int totalCount);

        IList<ForSaleAd> GetUserSavedPosts(int userAccountId);

        IList<ForSaleAd> GetUserSavedPosts(int userAccountId, int pageNum, out int totalCount);

        IList<int> GetIdListForAdPostedByUser(int userAccountId);

        void IncreaseNumberOfTimeClicked(int postId);

        void RemovePostFromSavedList(int userId, int postId);
    }
}
